package com.action.boot.mongo.mongo_template.controller;

import com.action.boot.mongo.mongo_template.service.BathUpdateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by Wuxiang on 2017/11/3.
 * 实现 批量更新
 *
 * 两种方式
 */
@RestController
@RequestMapping("/bath")
public class BathUpdateController {

    // 1. 使用 BathUpdateOptions，但实体类必须扁平化，无法嵌套list！

    @Autowired
    BathUpdateService bathUpdateService;

    @RequestMapping("/add")
    public String bathAdd() {
        int i = bathUpdateService.bathAdd();
        return "add:" + i + "条记录";
    }

    @RequestMapping("/update")
    public String bathUpdate() {
        int i = bathUpdateService.bathUpdate();
        return "update:" + i + "条记录";
    }


    // 2. 使用 BulkOperations ，可以嵌套list 进行批量更新

    @RequestMapping("/add2")
    public String bulkInsert() {
        int result = bathUpdateService.bulkAdd();
        return "add:" + result + "条记录";
    }

    @RequestMapping("/update2")
    public String bulkUpdate() {
        int i = bathUpdateService.bulkUpdate();
        return "update:" + i + "条记录";
    }
}
